﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Entidades;


namespace Datos
{
    public class UsuariosDao
    {
        //GESTION DE USUARIOS
        public int Insertar_Usuarios(UsuariosDto.Usuarios p)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                usuarios Cl = new usuarios();
                Cl.IdUsuarios = p.IdUsuarios;
                Cl.NombreUsuario = p.NombreUsuario;
                Cl.ApellidoUsuario = p.ApellidoUsuario;
                Cl.ContraseñaUsuario = p.ContraseñaUsuario;
                Cl.Email = p.Email;
                Cl.Sexo = p.Sexo;


                ctx.usuarios.Add(Cl);
                return ctx.SaveChanges();
            }
        }

        public int Update_Usuarios(UsuariosDto.Usuarios p)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                usuarios Cl = ctx.usuarios.Where(t => t.IdUsuarios == p.IdUsuarios).FirstOrDefault();

                Cl.NombreUsuario = p.NombreUsuario;

                return ctx.SaveChanges();

            }
        }
        public int Eliminar_Usuarios(int IdUsuarios)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                usuarios Cl = ctx.usuarios.Where(t => t.IdUsuarios == IdUsuarios).FirstOrDefault();
                ctx.usuarios.Remove(Cl);
                return ctx.SaveChanges();

            }
        }

        public UsuariosDto.Usuarios _GetUsuarios(int IdUsuarios)
        {
            UsuariosDto.Usuarios u = new UsuariosDto.Usuarios();
            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                var query = ctx.usuarios.Where(t => t.IdUsuarios == IdUsuarios).FirstOrDefault();

                
                    UsuariosDto.Usuarios x = new UsuariosDto.Usuarios();
                    x.IdUsuarios = query.IdUsuarios;
                    x.NombreUsuario = query.NombreUsuario;
                    x.ApellidoUsuario = query.ApellidoUsuario;
                    x.ContraseñaUsuario = query.ContraseñaUsuario;
                    x.Email = query.Email;
                    x.Sexo = query.Sexo;

                  return x;

                }

            }

        //GESTION DE RESTAURANTES

        public int Insertar_Restaurante(UsuariosDto.Restaurantes p)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                restaurantes Cl = new restaurantes();
                Cl.idRestaurantes = p.idRestaurantes;
                Cl.NombreRestaurante = p.NombreRestaurante;
                Cl.Propietario = p.Propietario;
                Cl.Celular = p.Celular;
                Cl.Telefono = p.Telefono;
                Cl.Direccion = p.Direccion;

                ctx.restaurantes.Add(Cl);
                return ctx.SaveChanges();
            }
        }

        public int Update_Restaurantes(UsuariosDto.Restaurantes p)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                restaurantes Cl = ctx.restaurantes.Where(t => t.idRestaurantes == p.idRestaurantes).FirstOrDefault();

                Cl.NombreRestaurante = p.NombreRestaurante;

                return ctx.SaveChanges();

            }
        }
        public int Eliminar_Restaurante(int idRestaurantes)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                restaurantes Cl = ctx.restaurantes.Where(t => t.idRestaurantes == idRestaurantes).FirstOrDefault();
                ctx.restaurantes.Remove(Cl);
                return ctx.SaveChanges();

            }
        }

        public UsuariosDto.Restaurantes _GetRestaurantes(int idRestaurantes)
        {
            UsuariosDto.Restaurantes u = new UsuariosDto.Restaurantes();
            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                var query = ctx.restaurantes.Where(t => t.idRestaurantes == idRestaurantes).FirstOrDefault();


                UsuariosDto.Restaurantes x = new UsuariosDto.Restaurantes();
                x.idRestaurantes = query.idRestaurantes;
                x.NombreRestaurante = query.NombreRestaurante;
                x.Propietario = query.Propietario;
                x.Celular = query.Celular;
                x.Telefono = query.Telefono;
                
                x.Direccion = query.Direccion;

                return x;

            }

        }

        //GESTION DE PRODUCTOS

        public int Insertar_Productos(UsuariosDto.Productos p)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                productos Cl = new productos();
                Cl.IdProductos = p.IdProductos;
                Cl.NombreProductos = p.NombreProductos;
                Cl.PrecioProductos = p.PrecioProductos;

                ctx.productos.Add(Cl);
                return ctx.SaveChanges();
            }
        }

        public int Update_Productos(UsuariosDto.Productos p)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                productos Cl = ctx.productos.Where(t => t.IdProductos == p.IdProductos).FirstOrDefault();

                Cl.NombreProductos = p.NombreProductos;

                return ctx.SaveChanges();

            }
        }

        public int Eliminar_Productos(int IdProductos)
        {

            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                productos Cl = ctx.productos.Where(t => t.IdProductos == IdProductos).FirstOrDefault();
                ctx.productos.Remove(Cl);
                return ctx.SaveChanges();

            }
        }

        public UsuariosDto.Productos _GetProductos(int IdProductos)
        {
            UsuariosDto.Productos u = new UsuariosDto.Productos();
            using (HomeExpressEntities ctx = new HomeExpressEntities())
            {
                var query = ctx.productos.Where(t => t.IdProductos == IdProductos).FirstOrDefault();

                UsuariosDto.Productos x = new UsuariosDto.Productos();
                x.IdProductos = query.IdProductos;
                x.NombreProductos = query.NombreProductos;
                x.PrecioProductos = query.PrecioProductos;
              
                return x;

            }
        }

        //INICIO DE SESION


        public int Login_Usuarios(UsuariosDto.Login p)
        {
            try
            {
                using (HomeExpressEntities ctx = new HomeExpressEntities())
                {
                    usuarios L_Usuarios = ctx.usuarios.Where(r => r.Email == p.Email).Where(q => q.ContraseñaUsuario == p.ContraseñaUsuario).FirstOrDefault();
                    if ((L_Usuarios.Email == p.Email) || (L_Usuarios.ContraseñaUsuario == p.ContraseñaUsuario))
                    {

                        return 1;

                    }
                    else
                    {
                        return 0;

                    }
                }
            }
            catch (System.Exception e)
            {

                return -1;
            }


        }
        // CALIFICACIONES


       
    }
}
